Designing Softwares For Engineers